package com.ncu702.backend.model.vo;


import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 用户视图（脱敏）
 *
 * @author <a href="https://github.com/liyupi">程序员鱼皮</a>
 * @from <a href="https://yupi.icu">编程导航知识星球</a>
 */

/*
在Java中，VO（Value Object）是一种设计模式，它是一种轻量级的Java Bean，用于传输对象。VO通常用于封装从数据库或其他数据源检索的数据。
VO类似于DTO（Data Transfer Object），但它们不同的是DTO主要用于远程调用中，而VO主要用于本地调用中。
VO类通常包含与数据库表中的列相对应的属性。例如，您提供的UserVO类是由User类延申而来，Usr类是绑定数据库表的。
UserVo的作用和意义是将User类中的属性进行封装，以便在应用程序中传输数据。
 */

/*
这里是只封装了一些基本信息的,无token，有序列化
 */
@Data
public class UserVO implements Serializable {

    /**
     * id
     */
    private Long id;

    /**
     * 用户昵称
     */
    private String userName;

    /**
     * 用户头像
     */
    private String userAvatar;

    /**
     * 用户简介
     */
    private String userProfile;

    /**
     * 用户角色：user/admin/ban
     */
    private String userRole;

    /**
     * 创建时间
     */
    private Date createTime;

    @Serial
    private static final long serialVersionUID = 1L;
}
